package com.designpattern.chain;

public class Main {

    /**
     * 责任链模式
     * 解藕了发送者 和 处理者的藕和关系。
     * 将多个处理者设置他们的请求顺序和规则，把处理者连成一条链
     * <p>
     * 例子：员工请假 <= 2 天 组长有权限
     * 员工请假 <= 5 天 主管有权限
     * 员工请假 <= 200 天 ceo有权限
     * 员工请假 >200 拒绝
     *
     * @param args
     */
    public static void main(String[] args) {
        // ceo 领导
        CEOLeader ceoLeader = new CEOLeader();
        // 主管 领导
        DirectorLeader directorLeader = new DirectorLeader();
        // 组长 领导
        GroupLeader groupLeader = new GroupLeader();

        // 设置请求顺序 组长 -> 主管
        groupLeader.setManager(directorLeader);
        // 主管 -> ceo
        directorLeader.setManager(ceoLeader);

        // 客户端发起请求
        groupLeader.handler(30);
    }
}

